package cn.xuguowen.init;

import org.springframework.stereotype.Component;

/**
 * ClassName: AbstractCache
 * Package: cn.xuguowen.init
 * Description:
 *      抽象的缓存预热类
 * @Author 徐国文
 * @Create 2023/3/12 11:45
 * @Version 1.0
 */

public abstract class AbstractCache {
    /**
     * 初始化缓存
     */
    public abstract void initCache();

    /**
     * 根据key获取缓存数据
     * @param key
     * @return
     * @param <T>
     */
    public <T> T gerCache(String key) {
        return null;
    }

    /**
     * 清除缓存
     */
    public abstract void clearCache();

    /**
     * 重新加载缓存
     */
    public void reloadCache() {
        clearCache();
        initCache();
    }
}
